// src/utils/http.js
import axios from 'axios';
import { ElNotification } from 'element-plus'; // 如果使用 Element Plus 进行通知

// 创建 axios 实例
const http = axios.create({
    baseURL: 'http://127.0.0.1:9211', // 请求的基础路径
    timeout: 100000, // 请求超时时间
});

// 请求拦截器
http.interceptors.request.use(
    config => {
        // 可以在这里添加请求头，比如 token
        const token = localStorage.getItem('Token'); // 从 localStorage 获取 token
        config.headers['Content-Type'] = 'application/json;charset=UTF-8'
        if (token) {
            config.headers['Authorization'] = `Bearer ${token}`; // 添加 token 到请求头
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

// 响应拦截器
http.interceptors.response.use(
    response => {
        return response.data; // 返回响应数据
    },
    error => {
        // 处理不同的错误状态
        if (error.response) {
            const status = error.response.status;
            if (status === 401) {
                ElNotification({
                    title: '未授权',
                    message: '请登录后再试',
                    type: 'error',
                });
                // 可以在这里进行登出操作等
            } else {
                ElNotification({
                    title: '请求错误',
                    message: error.response.data.message || '发生错误，请重试',
                    type: 'error',
                });
            }
        } else {
            ElNotification({
                title: '网络错误',
                message: '请检查您的网络连接',
                type: 'error',
            });
        }
        return Promise.reject(error);
    }
);

// 导出封装的 http 实例
export default http;
